package com.art.museumbackend.service;

import com.art.museumbackend.entity.Admin;
import com.baomidou.mybatisplus.extension.service.IService;

import java.time.LocalDateTime;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author yezi
 * @since 2024-12-06
 */
public interface AdminService extends IService<Admin> {
    //查找管理员
    Admin findByUsername(String username);
    //注册
    void register(String username, String password);
    //更新管理员信息
    void updateInfo(Admin admin);
    //更新管理员头像
    void updateAvatar(String avatarUrl);
    //修改密码
    void updatePwd(String newPwd);
    //更新登录失败信息
    void updateLoginFailInfo(Integer id, Integer failCount, Boolean lockStatus, LocalDateTime lockEndTime);
    //重置登录失败信息
    void resetLoginFailInfo(Integer id);
    //更新最后活动时间
    void updateLastActivityTime(Integer id);
    //检查账户锁定状态
    boolean isAccountLocked(Admin admin);
    //检查密码是否过期
    boolean isPasswordExpired(Admin admin);
    //检查密码复杂度
    boolean isPasswordValid(String password);
}
